//import SwiftUI
//import Charts
//
//struct CultivationStatisticsView: View {
//    @State private var selectedType: TaskType = .body
//    @State private var selectedTimeRange: TimeRange = .month
//    
//    let cultivationData: CultivationData
//    
//    var body: some View {
//        ZStack(alignment: .bottom) {
//            ScrollView {
//                VStack(spacing: 24) {
//                    timeRangeSelector
//                    heatmapView
//                    lineChartView
//                    pieChartView
//                }
//                .padding()
//                .padding(.bottom, 50) // Add padding for the tab bar
//            }
//            .background(Color(.systemGroupedBackground))
//            
//            // Custom Tab Bar
//            HStack(spacing: 0) {
//                ForEach(TaskType.allCases, id: \.self) { type in
//                    Button(action: {
//                        withAnimation {
//                            selectedType = type
//                        }
//                    }) {
//                        VStack(spacing: 4) {
//                            Text(type.rawValue)
//                                .font(.system(size: 17))
//                            
//                            // Indicator line
//                            Rectangle()
//                                .fill(type.color)
//                                .frame(height: 2)
//                                .opacity(selectedType == type ? 1 : 0)
//                        }
//                        .frame(maxWidth: .infinity)
//                    }
//                    .foregroundColor(selectedType == type ? type.color : .secondary)
//                }
//            }
//            .padding(.horizontal)
//            .frame(height: 44)
//            .background(Color(.systemBackground))
//            .overlay(
//                Rectangle()
//                    .frame(height: 1)
//                    .foregroundColor(Color(.separator))
//                    .opacity(0.5),
//                alignment: .top
//            )
//        }
//        .navigationTitle("修炼统计")
//    }
//    
//    private var timeRangeSelector: some View {
//        Picker("Time Range", selection: $selectedTimeRange) {
//            ForEach(TimeRange.allCases, id: \.self) { range in
//                Text(range.rawValue).tag(range)
//            }
//        }
//        .pickerStyle(SegmentedPickerStyle())
//    }
//    
//    private var heatmapView: some View {
//        VStack(alignment: .leading, spacing: 16) {
//            Text("修炼热力图")
//                .font(.headline)
//            
//            VStack(spacing: 0) {
//                HStack(alignment: .top, spacing: 0) {
//                    // Weekday labels column
//                    VStack(alignment: .trailing, spacing: 0) {
//                        ForEach(["一", "二", "三", "四", "五", "六", "日"], id: \.self) { day in
//                            Text(day)
//                                .font(.system(size: 12))
//                                .foregroundColor(.secondary)
//                                .frame(height: 24)
//                                .frame(width: 20, alignment: .trailing)
//                                .padding(.trailing, 8)
//                        }
//                    }
//                    
//                    ScrollView(.horizontal, showsIndicators: false) {
//                        VStack(spacing: 0) {
//                            HStack(spacing: 4) {
//                                if let data = cultivationData.heatmapData[selectedTimeRange] {
//                                    ForEach(0..<data.count, id: \.self) { weekIndex in
//                                        VStack(spacing: 4) {
//                                            ForEach(0..<7, id: \.self) { dayIndex in
//                                                RoundedRectangle(cornerRadius: 2)
//                                                    .fill(selectedType.color.opacity(data[weekIndex][dayIndex]))
//                                                    .frame(width: 20, height: 20)
//                                            }
//                                        }
//                                    }
//                                }
//                            }
//                            
//                            HStack(spacing: 4) {
//                                if selectedTimeRange == .month {
//                                    ForEach(0..<5) { weekIndex in
//                                        if weekIndex == 0 || weekIndex == 2 || weekIndex == 4 {
//                                            Text("\(weekIndex * 7 + 1)日")
//                                                .font(.system(size: 12))
//                                                .foregroundColor(.secondary)
//                                                .frame(width: 60, alignment: .center)
//                                        }
//                                    }
//                                } else {
//                                    ForEach(1...12, id: \.self) { month in
//                                        if month % 3 == 1 {
//                                            Text("\(month)月")
//                                                .font(.system(size: 12))
//                                                .foregroundColor(.secondary)
//                                                .frame(width: 120, alignment: .center)
//                                        }
//                                    }
//                                }
//                            }
//                            .padding(.top, 4)
//                        }
//                    }
//                }
//            }
//            .padding(.vertical, 8)
//            
//            HStack {
//                Text("较少")
//                    .font(.caption)
//                    .foregroundColor(.secondary)
//                Spacer()
//                HStack(spacing: 2) {
//                    ForEach(0..<5) { i in
//                        RoundedRectangle(cornerRadius: 2)
//                            .fill(selectedType.color.opacity(Double(i) / 4))
//                            .frame(width: 20, height: 20)
//                    }
//                }
//                Spacer()
//                Text("较多")
//                    .font(.caption)
//                    .foregroundColor(.secondary)
//            }
//            .padding(.top, 8)
//        }
//        .padding()
//        .background(Color(.systemBackground))
//        .cornerRadius(15)
//    }
//    
//    private var lineChartView: some View {
//        VStack(alignment: .leading, spacing: 16) {
//            Text("打卡率趋势")
//                .font(.headline)
//            
//            Chart {
//                ForEach(Array(cultivationData.completionRates[selectedType]?[selectedTimeRange]?.enumerated() ?? [].enumerated()), id: \.element) { index, rate in
//                    LineMark(
//                        x: .value("Period", index),
//                        y: .value("Rate", rate)
//                    )
//                    .foregroundStyle(selectedType.color.gradient)
//                    
//                    AreaMark(
//                        x: .value("Period", index),
//                        y: .value("Rate", rate)
//                    )
//                    .foregroundStyle(selectedType.color.opacity(0.1).gradient)
//                }
//            }
//            .frame(height: 200)
//            .chartYScale(domain: 0...1)
//            .chartYAxis {
//                AxisMarks(values: [0, 0.25, 0.5, 0.75, 1]) { value in
//                    AxisGridLine()
//                    AxisValueLabel {
//                        Text("\(Int(value.as(Double.self)! * 100))%")
//                    }
//                }
//            }
//            .chartXAxis {
//                AxisMarks(values: .automatic(desiredCount: selectedTimeRange == .month ? 4 : 12)) { value in
//                    AxisGridLine()
//                    AxisValueLabel {
//                        if let intValue = value.as(Int.self) {
//                            Text(selectedTimeRange == .month ? "第\(intValue + 1)周" : "\(intValue + 1)月")
//                        }
//                    }
//                }
//            }
//        }
//        .padding()
//        .background(Color(.systemBackground))
//        .cornerRadius(15)
//    }
//    
//    private var pieChartView: some View {
//        VStack(alignment: .leading, spacing: 16) {
//            Text("修炼类型占比")
//                .font(.headline)
//            
//            Chart {
//                ForEach(TaskType.allCases, id: \.self) { type in
//                    SectorMark(
//                        angle: .value("Value", cultivationData.typeDistribution[selectedTimeRange]?[type] ?? 0),
//                        innerRadius: .ratio(0.618),
//                        angularInset: 1.5
//                    )
//                    .foregroundStyle(type.color.gradient)
//                }
//            }
//            .frame(height: 200)
//            
//            VStack(spacing: 8) {
//                ForEach(TaskType.allCases, id: \.self) { type in
//                    HStack {
//                        Circle()
//                            .fill(type.color)
//                            .frame(width: 10, height: 10)
//                        Text(type.rawValue)
//                        Spacer()
//                        Text("\(Int((cultivationData.typeDistribution[selectedTimeRange]?[type] ?? 0) * 100))%")
//                    }
//                }
//            }
//            .font(.caption)
//            .padding(.top, 4)
//        }
//        .padding()
//        .background(Color(.systemBackground))
//        .cornerRadius(15)
//    }
//}
//
//enum TimeRange: String, CaseIterable {
//    case month = "月"
//    case year = "年"
//}
//
//enum TaskType: String, CaseIterable {
//    case technique = "炼技"
//    case body = "炼体"
//    case mind = "炼神"
//    
//    var color: Color {
//        switch self {
//        case .technique: return .blue
//        case .body: return .green
//        case .mind: return .purple
//        }
//    }
//}
//
//struct CultivationData {
//    var heatmapData: [TimeRange: [[Double]]]
//    var completionRates: [TaskType: [TimeRange: [Double]]]
//    var typeDistribution: [TimeRange: [TaskType: Double]]
//}
//
//struct CultivationStatisticsView_Previews: PreviewProvider {
//    static var previews: some View {
//        NavigationView {
//            CultivationStatisticsView(cultivationData: CultivationData(
//                heatmapData: [
//                    .month: (0..<5).map { _ in (0..<7).map { _ in Double.random(in: 0...1) } },
//                    .year: (0..<52).map { _ in (0..<7).map { _ in Double.random(in: 0...1) } }
//                ],
//                completionRates: [
//                    .technique: [
//                        .month: (0..<4).map { _ in Double.random(in: 0.5...1) },
//                        .year: (0..<12).map { _ in Double.random(in: 0.5...1) }
//                    ],
//                    .body: [
//                        .month: (0..<4).map { _ in Double.random(in: 0.5...1) },
//                        .year: (0..<12).map { _ in Double.random(in: 0.5...1) }
//                    ],
//                    .mind: [
//                        .month: (0..<4).map { _ in Double.random(in: 0.5...1) },
//                        .year: (0..<12).map { _ in Double.random(in: 0.5...1) }
//                    ]
//                ],
//                typeDistribution: [
//                    .month: [.technique: 0.38, .body: 0.37, .mind: 0.25],
//                    .year: [.technique: 0.35, .body: 0.4, .mind: 0.25]
//                ]
//            ))
//        }
//    }
//}
//
